<?php  
set_time_limit(0) ;
error_reporting(E_ERROR | E_WARNING | E_PARSE) ; 
$post = array() ;
$ignore = array() ;
$ignore['dir'] = array() ; //存放将会忽略掉的目录
$ignore['file'] = array() ; //存放将会忽略掉的文件 记录 
$GLOBALS['modifyFiles'] = array() ;
if (!get_magic_quotes_gpc()){
	foreach ($_POST as $key => $value) {
		$post[$key] = addslashes($value); 
	} 
} 
if ( $time1 == "") {
	$time1 = time()-3600*24 ; //默认为1天前
}else{
	$time1 = strtotime($post['time1']) ;
}
if ( $time2 == "") {
	$time2 = time() ; //默认为1天 
}else{
	$time2 = strtotime($post['time2']) ;
}
/**
 * 定义返回方法 
 */
function jcode($status,$info){
	echo json_encode(array('status'=>$status,"info"=>$info) ) ;
	exit() ; 
}
//分析根路径是否存在
if ( !is_dir( $post['path'] ) ) {
	jcode(0,"目录不存在") ;
}
//解析需要忽略的目录和文件
if ( $post['ignore'] !="" ) {
	$ignorearr = explode("\r\n", $post['ignore']) ; 
	foreach ($ignorearr  as $key => $value) {
		$value = trim($value) ;
		//判断是否以/结尾 
		if( substr($value, -1) == "/"){
			$ignore['dir'][] = $value ; 
		}else{
			$ignore['file'][] = $value ; 
		} 
	}
} 
//一层一层去爬  
function listDir($dir,$ignore,$time1="",$time2=""){ 
	if ($dh = opendir($dir)) { 
		while (($file = readdir($dh)) !== false){ 
				if ( in_array($dir."/".$file."/", $ignore['dir']) ) {
					continue ; 
				} 
				if((is_dir($dir."/".$file)) && $file!="." && $file!=".."){
					if ( substr($file, 0,1) == ".") {
						continue ; 
					}
					listDir($dir."/".$file ,$ignore,$time1,$time2);
				}else{
					if($file!="." && $file!=".."){ 
						if ( in_array($dir."/".$file, $ignore['file']) ) {
							continue ; 
						}
                     	//这里需要记录文件了  //判断文件修改时间 
                     	$mtime = filemtime( $dir."/".$file ) ;  
                     	//echo $file."---------".$mtime."\r\n" ;  
                     	if ( $time1 < $mtime && $mtime < $time2) {
                     		$GLOBALS['modifyFiles'][] = $dir."/".$file ;  //记录一下 
                     	}  
                    }  
				}
		}
		closedir($dh);
	}
	return $record ;
}
/**
 * 根据路径循环创建目录
 */
function mkDirs($dir){ 
    if(!is_dir($dir)){
        if(!mkDirs(dirname($dir))){
            return false;
        }
        if(!mkdir($dir,0777)){
            return false;
        }
    }
    return true;
}
listDir($post['path'],$ignore,$time1,$time2);
//生成新的文件夹 
foreach ($GLOBALS['modifyFiles'] as $key => $value) {
	//替换路径 ../vxue 为 ./Temp 
	$newvalue = str_replace( $post['path']  , "./Temp", $value) ; 
	//创建目录
	mkDirs( dirname( $newvalue ) ) ;
	//拷贝文件 
	copy( $value , $newvalue );   
}
//生成路径集合 准备返回  
jcode(1,$GLOBALS['modifyFiles']);

?>